package com.ouwen.smartpay.openapi.order;

import com.fm.common.emuns.MessageType;
import com.fm.core.common.facade.OrderBase;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author <a href="http://youngitman.tech">青年IT男</a>
 * @version v1.0.0
 * @className PayOrder
 * @description
 * @JunitTest: {@link  }
 * @date 2020-04-22 11:50
 **/
@Setter
@Getter
public class ServiceOrder extends OrderBase {

    @NotEmpty(message = "调用服务名不能为空")
    private String service;

    @NotEmpty(message = "调用请求流水号不能为空")
    private String requestNo;

    @NotNull(message = "请求时间戳,不能为空")
    private Date timestamp;

    /*** 调用服务的版本号 */
    private String version = "1.0.0";

    /*** 异步通知地址:如果调用接口指定则使用，否则使用在接入时候的配置 */
    private String notifyUrl;

    /*** 异步通知使用类型
     * RPC -> 需要esc转换后以http方式通知服务调用方
     * HTTP -> 直接调用调用方提供的http端口地址
     * */
    private MessageType messageType;

    /*** 调用服务分组默认为空字符串 */
    private String group;

    /*** 调用服务的数据 */
    private Map<String, Object> datas = new HashMap<>();

}
